<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数原型的三种情况</title>
</head>
<body>
    <script>


      /* 
         1.只有使用函数声明的方式创建一个函数,才会声明提前，函数的原型对象才会是object类型 

         使用new的方式创建的函数对象，那么它的原型对象也是object类型
      
      
      */

      
            
        //会声明提前
            function Foo(){

            }
            console.log(typeof Foo.prototype); //object    

        //不会声明提前   
            var a =function () {  

            }
            console.log(typeof a.__proto__); //function
            console.log(typeof a.__proto__.__proto__); //object 

            var z =new a();
            console.log(typeof z.__proto__); //object


         //不会声明提前   
            var b =new Function();

            console.log(typeof b.__proto__);  //function
            console.log(typeof b.__proto__.__proto__); //object









    </script>
</body>
</html>